// pages/FirstPage/order-1/order-1.js
var api = require('../../../config/api.js');

Page({

    /**
     * 页面的初始数据
     */
    data: {
        // 录音播放状态
        isPlaying: false,
        // 返回工单的详细信息
        workOrderInfo: [],
        electricianCode: '',
        workOrderCode: '',
        Name: '',
        phone: '',
        // 报修图片
        Images:[]
    },
    
    toggleAudio: function () {
        const audio = wx.createAudioContext('audio'); // 获取音频上下文
        if (this.data.isPlaying) {
          audio.pause(); // 暂停音频
        } else {
          audio.play(); // 播放音频
        }
    
        // 更新播放状态
        this.setData({
          isPlaying: !this.data.isPlaying
        });
      },    
      // 音频播放结束事件，切换按钮状态
    onAudioEnded: function () {
        console.log('音频播放完毕');
        // 音频播放完毕后，将按钮文本更新为 "录音播放"
        this.setData({
        isPlaying: false // 更新播放状态为未播放
        });
    },

    previewImage(e){
        const index = e.currentTarget.dataset.index; // 获取点击的图片索引
        const currentImage = this.data.Images[index];  // 获取当前点击的图片路径
        console.log('点击图片路径', currentImage)

        wx.previewImage({
          current: currentImage,  // 当前显示的图片地址
          urls: this.data.Images  // 需要预览的图片列表
        });
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        console.log('来自onLoad的页面刷新')
        // 获取前一页传递过来的工单号
        const workOrder = options.workOrderCode;
        console.log('从首页传递过来的工单号：', workOrder)
        this.setData({
            workOrderCode: workOrder
        })
        this.fetchWorkOrderInfo(workOrder);
    },

    fetchWorkOrderInfo(workOrder){
        // 根据前端传的工单号，向后端请求该工单的详细信息
        wx.request({
          url: api.getWorkOrderInfo,
          method: 'POST',
          data:{
            workOrderCode: workOrder
          },
          // 发送请求后，执行回调函数
          success:(res) => {
            console.log('从首页跳转，后台传递的工单详情', res.data.data)
            // 根据code判断是否请求到数据
            if(res.data.code == 200){
                  // 用后台传回来的数据更新workOrderInfo
                  this.setData({
                      workOrderInfo: res.data.data
                  });
                  console.log('该订单的工单状态的workOrderType', this.data.workOrderInfo.workOrderType)
                  // 控制台打印回传数据，查看是否传递成功
               console.log('后台传递数据workOrderInfo:', this.data.workOrderInfo)
               console.log('后台传递数据图片字符串:', this.data.workOrderInfo.workOrderImgFile)
               // 获取urls的拼接字符串
               var urls = this.data.workOrderInfo.workOrderImgFile;
                // 切割字符串，并把每张图片作为一个元素存入Images数组中
                this.splitImageUrls(urls);
            }else{
                wx.showToast({
                  title: res.data.mesage,
                  icon: 'none'
                });
            }
          },
          fail(){
              wx.showToast({
                title: '请求失败',
                icon: 'none'
              });
          },
        })
    },

    splitImageUrls(urls){
        var pic = [];
        if (urls.includes('&&')) {
            // 使用'&&'切割字符串
            pic = urls.split('&&');
          } else {
            // 如果没有逗号，则直接将 urls 放入 pic 数组中
            pic = [urls];
          }
          console.log('切割之后的数组',pic);
          this.setData({
            // 把数组内容直接赋值给testingImgFile
            Images: pic
          });
    },
    
    


    // 执行抢单操作，并把订单添加到该电工的我的工单里面
    doGrabTask(){
        // 先从本地获取到电工的信息
        wx.getStorage({
            key: 'electricianCode',
            success: (RES) => {
                this.setData({
                    electricianCode: RES.data.electricianCode,
                    phone: RES.data.PhoneNum,
                })
                // 调用电工信息接口获取电工姓名
                wx.request({
                  url: api.getElectricianInfo,
                  method: 'POST',
                  data:{
                    electricianPhone: this.data.phone
                  },
                  success: (result) => {
                      console.log('后台返回code：', result.data.code)
                      if(result.data.code == 200){
                          this.setData({
                              Name: result.data.data.electricianName
                          });
                          console.log('传递过来的电工姓名：', result.data.data.electricianName)    
                          // 确保获取到姓名之后，再进行抢单操作   
                          this.grabOrder();
                      }
                  },
                })
            },
        })
    },

    // 执行接单操作，操作完成将订单添加到我的工单里面
    doAddTask: function(){
        // 先从本地获取到电工的信息
        wx.getStorage({
            key: 'electricianCode',
            success: (RES) => {
                this.setData({
                    electricianCode: RES.data.electricianCode,
                    phone: RES.data.PhoneNum,
                })
                this.AddOrder();
            },
        })
    },

    doReject: function(){
        wx.getStorage({
            key: 'electricianCode',
            success: (RES) => {
                this.setData({
                    electricianCode: RES.data.electricianCode,
                    phone: RES.data.PhoneNum,
                })
                // 请求电工编号成功，就可以调用拒单接口
                wx.request({
                    url: api.refuse,
                    method: 'POST',
                    data:{
                      electricianCode: this.data.electricianCode,
                      workOrderCode: this.data.workOrderCode,
                    },
                    success: (res) => {
                        if(res.data.code == 200){
                            wx.showToast({
                              title: '拒单成功',
                              icon: 'none',
                            });
                        }else{
                            wx.showToast({
                              title: res.data.mesage,
                              icon: 'none'
                            });
                        }
                    },
                    fail(){
                        wx.showToast({
                          title: '网络错误',
                          icon: 'none',
                        });
                    },
                  })
                  wx.navigateBack();
            },
        })
    },

    AddOrder(){
        wx.request({
          url: api.accept,
          method: 'POST',
          data:{
            workOrderCode: this.data.workOrderCode,
            electricianCode: this.data.electricianCode,
          },
          success: (res) => {
              if(res.data.code == 200){
                wx.showToast({
                  title: '接单成功',
                  icon: 'none'
                });
              }else{
                  wx.showToast({
                    title: res.data.mesage,
                    icon: 'none'
                  });
              }
          },
        })
        wx.navigateBack();
    },

    grabOrder(){
        // 通过前端向后端传递参数，实现抢单
        wx.request({
            url: api.grabOrder,
            method: 'POST',
            data:{
              workOrderCode: this.data.workOrderCode,
              electricianCode: this.data.electricianCode,
              electricianName: this.data.Name,
              electricianPhone: this.data.phone,
            },
            // 请求成功
            success: (res) => {
              if(res.data.code == 200){
                  wx.showToast({
                    title: '抢单成功',
                    icon: 'none',
                  });
              }else{
                  wx.showToast({
                    title: res.data.mesage,
                    icon: 'none',
                  });
              }
            },
            fail(){
                wx.showToast({
                  title: '请求接口失败',
                  icon: 'none'
                });
            },
          })
          wx.navigateBack();
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        const systemInfo = wx.getSystemInfoSync();
        const statusBarHeight = systemInfo.statusBarHeight; // 状态栏高度
        const navBarHeight = systemInfo.navigationBarHeight; // 导航栏高度
        console.log('导航栏', systemInfo);
        console.log('来自onshow的页面刷新')
        this.fetchWorkOrderInfo(this.data.workOrderCode);
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    /**
     * 返回上一页
     */
    toBack: function(){
      wx.navigateBack();
    },
})